package com.wyix.entity;


/**
 * @author wangdx
 * @date 2025/8/1
 * @description
 */
public class PetPoke {
    public String name;
    public byte level; // 小精灵等级，使用byte类型，因为等级通常不会太高
    short health; // 小精灵生命值，使用short类型
    public long experience; // 小精灵经验值，使用long类型，可能会积累很大的值
    float attackPower; // 小精灵攻击力，使用float类型
    char rarity; // 小精灵稀有度，使用char类型，如 'A', 'B', 'C'
    boolean isAlive; // 小精灵是否存活，使用boolean类型

    public PetPoke(String name, byte level, short health, long experience, float attackPower, char rarity, boolean isAlive) {
        this.name = name;
        this.level = level;
        this.health = health;
        this.experience = experience;
        this.attackPower = attackPower;
        this.rarity = rarity;
        this.isAlive = isAlive;
    }

    // 喂养小精灵提升等级
    public void feed(int foodAmount) {
        // 每10个食物量提升1级
        byte levelUp = (byte) (foodAmount / 10);
        this.level += levelUp;
    }

    // 小精灵战斗
    public boolean battle(int enemyStrength) {
        if (this.attackPower > enemyStrength) {
            // 战斗胜利，获得经验值
            this.experience += 100;
            return true;
        } else {
            // 战斗失败，减少生命值
            this.health -= 20;
            if (this.health <= 0) {
                this.isAlive = false;
            }
            return false;
        }
    }
}
